package jp.sourceforge.akjrcp.psp;

import java.util.List;

import jp.sourceforge.akjrcp.akj_betas.Akj_betasPlugin;
import jp.sourceforge.akjrcp.ffmpeg.FFMpegInput;
import jp.sourceforge.akjrcp.ffmpeg.FFMpegPreference;

import org.apache.commons.lang.ArrayUtils;

public class PSPFFMpegPreference extends FFMpegPreference {


private boolean h264HQ;
public String toString(){
	String info="";
	info+=this.getVideoSize()+" "+this.getVideoBitrate()+"k "+this.getVideoRate()+"fps"+"\n";
	info+=this.getAudioRate()+"hz "+this.getAudioBitrate()+"k"+" "+this.getAudioChannel()+" ch"+"\n";
	return info;
}
/**
 * @deprecated
 */
public boolean isH264HQ() {
	return h264HQ;
}
/**
 * @deprecated
 */
public void setH264HQ(boolean h264hq) {
	h264HQ = h264hq;
}

public void addLastOptions(FFMpegInput[] inputs,List params){
	
	
	//some ffmpeg need rc_eq always
	params.add("-rc_eq");
	params.add("blurCplx^(1-qComp)");
	
	if(isH264HQ()){//add hq option any time.
	String options[]=FFMpegPreference.parseCommand(Akj_betasPlugin.getDefault().getPreferenceStore().getString(PSPSettingPage.HQ_SETTINGS));
	PSPSyncView.log.info(ArrayUtils.toString(options));
	for (int i = 0; i < options.length; i++) {
		params.add(options[i]);
	}
	}
	

	
	/*
	//-crf 21 -refs 3 -deblockalpha 0 -deblockbeta 0  -parti4x4 1 -partp8x8 1 -partb8x8 1 -me umh -subq 6 -brdo 1 -me_range 21 -chroma 1 -slice 2  -g 250 -keyint_min 25 -sc_threshold 40 -rc_eq "blurCplx^(1-qComp)" -qcomp 0.60 -qmin 7 -qmax 35
	if(isH264HQ()){
	//params.add("-crf");
	//params.add(""+21);
	
	params.add("-refs");
	params.add(""+3);
	
	params.add("-deblockalpha");
	params.add(""+0);
	
	params.add("-deblockbeta");
	params.add(""+0);
	
	params.add("-parti4x4");
	params.add(""+1);
	
	params.add("-partp8x8");
	params.add(""+1);
	
	params.add("-partb8x8");
	params.add(""+1);
	
	params.add("-me");
	params.add("umh");
	
	params.add("-subq");
	params.add(""+6);
	
	params.add("-brdo");
	params.add(""+1);
	
	params.add("-me_range");
	params.add(""+21);
	
	params.add("-chroma");
	params.add(""+1);
	
	params.add("-slice");
	params.add(""+2);
	
	params.add("-g");
	params.add(""+250);
	
	params.add("-keyint_min");
	params.add(""+25);
	
	params.add("-sc_threshold");
	params.add(""+40);
	
	params.add("-rc_eq");
	params.add("blurCplx^(1-qComp)");
	
	params.add("-qcomp");
	params.add(""+0.60);
	
	params.add("-qmin");
	params.add(""+7);
	
	params.add("-qmax");
	params.add(""+35);
	*/
	
}

}
